home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / urn / urn-archives / urn-ietf.archive.9612 / 000039_owner-urn-ietf _Fri Dec 20 13:53:15 1996.msg < prev    next >
Internet Message Format  |  1997-02-19  |  12KB

  1. Received: (from daemon@localhost) by services.bunyip.com (8.6.10/8.6.9) id NAA01599 for urn-ietf-out; Fri, 20 Dec 1996 13:53:15 -0500
  2. Received: from mocha.bunyip.com (mocha.Bunyip.Com [192.197.208.1]) by services.bunyip.com (8.6.10/8.6.9) with SMTP id NAA01592 for <urn-ietf@services.bunyip.com>; Fri, 20 Dec 1996 13:53:11 -0500
  3. Received: from dicsmss1.jrc.it by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b)
  4.         id AA22339  (mail destined for urn-ietf@services.bunyip.com); Fri, 20 Dec 96 13:52:54 -0500
  5. Received: from  jrc.it (elect6.jrc.it) by dicsmss1.jrc.it (4.1/EB-950131-C)
  6.     id AA12960; Fri, 20 Dec 96 19:58:19 +0100
  7. Received: by  jrc.it (5.x/EB-950213-L)
  8.     id AA15610; Fri, 20 Dec 1996 19:52:29 +0100
  9. Date: Fri, 20 Dec 1996 19:52:28 +0100 (MET)
  10. From: Dirk.vanGulik@jrc.it
  11. X-Sender: dirkx@elect6.jrc.it
  12. To: Ryan Moats <jayhawk@ds.internic.net>
  13. Cc: urn-ietf@bunyip.com
  14. Subject: Re: [URN] Pre-release of draft-ietf-urn-syntax-02.txt
  15. In-Reply-To: <32B56D9D.7B96@ds.internic.net>
  16. Message-Id: <Pine.SOL.3.91.961220185310.15549B-100000@elect6.jrc.it>
  17. Reply-Path: Dirk.vanGulik@jrc.it
  18. Mime-Version: 1.0
  19. Content-Type: TEXT/PLAIN; charset=US-ASCII
  20. Sender: owner-urn-ietf@services.bunyip.com
  21. Precedence: bulk
  22. Reply-To: Dirk.vanGulik@jrc.it
  23. Errors-To: owner-urn-ietf@bunyip.com
  24.  
  25. Just some comments on grandfathering and the % changes. The quick summary
  26.  
  27.         0. A plea to make the <urn-set> representation the real
  28.        thing; while still urging for the UA's to display/enter/...
  29.            then with effective UTF8 decoding.
  30.  
  31.     1. suggested removal of the '%' sign from the list.
  32.  
  33.     2. suggested a utf-8 glyph encoding of '%' as a
  34.            octed for the char itself (%25 I think)
  35.      
  36.         3. suggested escape hatch for (grandfathered in) namespaces
  37.            where the glyph representation is confirmed ambigious. (For
  38.        example the $, #, pound and yen sign)
  39.  
  40.         4. suggested escape hatch for namespaces where the identifiers
  41.            have no meaningfull representation in the urn syntax (at least
  42.            meaningfull in the sense that a UA could gain something by
  43.        showing it to the user) such as spaces which have a purely
  44.        binary object identifiers; base64 is the _should_ wannabe.
  45.  
  46.     5. Some very SILLY suggestion about leaving the '.' in the
  47.        NSS reserverd for future version or expansion.
  48.  
  49.     6. Some extra requiments on the NSI if it is one of the URI
  50.            prefixes. I can see valid reasons to do this; but also 
  51.        can see easy confusion with the UA interface; so if one
  52.        proposes such a NSI idenfier she'd better address/defend
  53.        it in the publication right away. Quick example:
  54.  
  55.         urn:email:dirk.vangulik@jrc.it
  56.         urn:smtp:Marcel-1.08-1111165644-064SrPH@snoopy.ant.co.uk
  57.         urn:nntp:some-message-id-as-above
  58.         
  59.        Although one might think these are a bad idea; the syntax
  60.        and resolution allows for them; the do make a bit of sense
  61.        and I can image people with actually have brains dreaming
  62.        up persitant names for resources they already have avaible
  63.            under a well know url. 
  64.  
  65. Have fun.
  66.  
  67. Dw.
  68.  
  69. -- URN Syntax
  70. -- Filename: draft-ietf-urn-syntax-02.txt
  71. --
  72. -- 2.1 Namespace Identifier Syntax
  73. --
  74. -- The following is the syntax for the Namespace Identifier. To (a) be
  75. -- consistent with all potential resolution schemes and (b) not put any
  76. -- undue constraints on any potential resolution scheme, the syntax for
  77. -- the Namespace Identifier is:
  78. --
  79. -- <NID> ::= <let-num> [ *<let-num-hyp> ]
  80. --
  81. -- <let-num-hyp> ::= <upper> | <lower> | <number> | "-"
  82. --
  83. -- <let-num> ::= <upper> | <lower> | <number>
  84. --
  85. -- <upper> ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" |
  86. -- "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" |
  87. -- "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" |
  88. -- "Y" | "Z"
  89. --
  90. -- <lower> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" |
  91. -- "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" |
  92. -- "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |
  93. -- "y" | "z"
  94. --
  95. -- <number> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
  96. -- "8" | "9"
  97. --
  98. -- This is slightly more restrictive that what is stated in RFC 1738 [3]
  99. -- (which allows the period "."). Further, the Namespace Identifier is
  100. -- case insensitive, so that "ISBN" and "isbn" refer to the same
  101. -- namespace.
  102.  
  103. I only recently realized this when we where making an updated version
  104. of a namespace; and we actually federated the namespace identification
  105. itself for a little test; i.e.
  106.  
  107.         urn:v2.inet:some.where:somestring
  108.  
  109. Which obviously works with the v2.inet.urn.net lookup. I am not sure
  110. wether this is fluff functionality; and I feel that I am going down
  111. a slipperly slope; but you 'might' want to reserve the dot somehow
  112. for future expansion if you need an extra dimension; say because we do
  113. not have the syntax right now; you could do something like
  114.  
  115.         urn:duns.2:gorbaglobinrealniceunicode
  116.  
  117. I.e. have an escape option. 
  118.  
  119. -- To avoid confusion with the "urn:" identifier, the NID "urn" is
  120. -- reserved and MUST NOT be used.
  121.  
  122. After some confusion here; I would like to add something along the lines
  123. of:
  124.  
  125. If a proposed namespace identifier is already in use as a protocol 
  126. specifier in the URI space, such as for example ftp, http or email,
  127. the proposal for this identifier should justify this choise; i.e
  128.  
  129.     urn:email:dirk.vangulik@jrc.it  or
  130.     urn:ftp:someplace:abc.efg
  131.     urn:ftp://someplace/abcd.efg
  132.  
  133. Because I can see people wanting to re-use some of the existing well
  134. know protocol specifiers; but that would _really_ cause confusion
  135. esspecially when the User agent allow you to type 'ibm' and really
  136. turn it into http://www.ibm.com:80/home.html these days :-)
  137.  
  138. -- As required by 1737, there is a single canonical representation of
  139. -- the NSS portion of an URN. The format of this single canonical form
  140. -- follows:
  141. --
  142. -- <NSS> ::= *<URN chars>
  143. --
  144. -- <URN chars> ::= <trans> | "%" <hex> <hex>
  145. --
  146. -- <trans> ::= <upper> | <lower> | <number> | <other>
  147. --
  148. -- <hex> ::= <number> | "A" | "B" | "C" | "D" | "E" | "F" |
  149. -- "a" | "b" | "c" | "d" | "e" | "f"
  150. --
  151. -- <other> ::= "(" | ")" | "+" | "" | "," | "-" | "." | "/" |
  152. -- ":" | "=" | "?" | "@" | "%"
  153.  
  154. This means that a '%' followed by a non-hex encodes itself, but so
  155.  
  156.     urn:abc:jan%is%gek and
  157.  
  158. is no problem. But than suppose you _want_ to replace the 'is' by
  159. a 'ef' which looks like hex (though you did not intend it. So I would
  160. propose to re-formulate it as:
  161.  
  162. ++ <other> ::= "(" | ")" | "+" | "" | "," | "-" | "." | "/" |
  163. ++ ":" | "=" | "?" | "@"
  164.  
  165. And in the text
  166.  
  167. -- Depending on the rules governing a namespace, valid identifiers in a
  168. -- namespace might contain characters that are not members of the URN
  169. -- character set above (<URN chars>). Such strings MUST be translated
  170. -- into canonical NSS format before using them as protocol elements or
  171. -- otherwise passing them on to other applications. Translation is done
  172. -- by encoding each character outside the URN character set as a
  173. -- sequence of one to six octets using UTF-8 encoding, and the encoding
  174. -- of each of those octets as "%" followed by two characters from the
  175. -- <hex> character set above. The two characters give the hexadecimal
  176. ++ representation of that octet. The percentage sign _itself_ is encoded
  177. ++ as an octed index into its UTF-8 representation
  178.  
  179. -- Namespaces MAY designate one or more characters from the URN
  180. -- character set as having special meaning for that namespace (An
  181. -- example of this is the "%" character in the URN syntax itself). If
  182. -- the namespace also uses that character in a literal sense as well,
  183. -- the character used in a literal sense MUST be encoded with "%"
  184. -- followed by the hexadecimal representation of that octet. Therefore,
  185. -- the process of registering a namespace identifier shall include
  186. -- publication of a definition of which characters have a special
  187. -- meaning and how to encode these characters if used in a literal
  188. -- sense.
  189.  
  190. Now this kind of 'clashes' with the needs to grandfather in various
  191. schemes as their glyfh encoding might *NOT* be an unambigious character
  192. index. For example if the indexes or local control identifiers are
  193. collected over various contries; which each use their own (say latin)
  194. charset, but the actual LCI is just the sequence of the character index 
  195. number _ITSELF_ into the various charsets. So encoding the glyf using 
  196. UTF8 it represents in one charset display mapping would most certainly 
  197. wrong for another one; and if the people interoperate you have broken the 
  198. LCI scheme. The reverse also happens; and on top of that normalizing in 
  199. UTF8 makes it even more fun.
  200.  
  201. So for this reason I suggest the follwing change of wording
  202.  
  203. -- Depending on the rules governing a namespace, valid identifiers in a
  204. -- namespace might contain character indexes that are not members of the 
  205. ++ URN character set above or have a different glyph represenation in the 
  206. ++ above charset. (<URN chars>). Such strings MUST be translated
  207. -- into canonical NSS format before using them as protocol elements or
  208. -- otherwise passing them on to other applications. Translation is done
  209. -- by encoding each character index outside the URN character and/or 
  210. ++ with a different glyph interpretation. If the glyph and indexes 
  211. ++ representation is unambigious then it SHOULD be encoded as a
  212. ++ sequence of one to six octets using UTF-8 encoding, and the encoding
  213. -- of each of those octets as "%" followed by two characters from the
  214. -- <hex> character set above. The two characters give the hexadecimal   
  215. ++ representation of that octet. The percentage glyph _itself_ is encoded
  216. ++ as an octed index into the UTF-8 representation. 
  217.  
  218. As an aside; could someone more knowledgable than me add something about
  219. normalization of the UTF-8 string; as this does aid the encoding when
  220. a user is allowed to enter a URN from a keyword with other keys than
  221. than those corresponding to the symbols of <urn-set>.
  222.  
  223. -- Namespaces whose object identifiers do not have a mapping to an 
  224. -- information conveying representation SHOULD use a base64 encoding
  225. -- of the binary encoded identifier.
  226.  
  227. -- Namespaces MAY designate one or more characters from the URN
  228. -- character set as having special meaning for that namespace (An
  229. -- example of this is the "%" character in the URN syntax itself). If
  230. -- the namespace also uses that character in a literal sense as well,
  231. -- the character used in a literal sense MUST be encoded with "%"
  232. -- followed by the hexadecimal representation of that octet. Therefore,
  233. -- the process of registering a namespace identifier shall include   
  234. -- publication of a definition of which characters have a special
  235. -- meaning and how to encode these characters if used in a literal
  236. ++ sense. Likewise if glyph ambiguity does not allow for UTF8 encoding
  237. ++ the publication should outline the possible ambiguity and 
  238. ++ representations possible for display. 
  239.  
  240. By the way; I do feel quite strong about glyph ambiguity and the
  241. ability to encode arbritary strings. I would even be happier if
  242. each name scheme essnetially defined _ITSELF_ what glyph encoding
  243. it uses; and only suggest extremly strongly that UTF is the way
  244. to go. But that the bottom line is that:
  245.  
  246. ++ The URN is a sequence of glyphs taken from the <urn-set>. It is
  247. ++ represented by an octed stream with the only the values of the 
  248. ++ indexes of the <urn-set> glyphs in UTF-8. A glyph or symbol encoded,
  249. ++ entered, stored, displayed or conveyed which is not in this limited
  250. ++ range, for examply with an UTF-8 encoding, is purely based on the
  251. ++ mutual understanding of the publishing and utilizing party; but is
  252. ++ not to be used to represent the URN.
  253.  
  254. The above needs to be tackled anyway, somewhere; unless I missed the
  255. place in the current draft which tells us which is really the authorative
  256. representation (between machines :-) of the beast. (Ignoring 
  257. normalziaiton,etc).
  258.  
  259. Well, Merry Chrismass,
  260.  
  261. Dw.
  262.  
  263.  
  264.  
  265.  
  266.   
  267.  
  268.  
  269.  
  270.  
  271.  
  272.